<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
<div id="app">
    <h1>{{msg.split("").reverse().join("")}}</h1>
    <h1>计算属性:{{reverseMsg}}</h1>
    <h1>计算属性:{{reverseMsg}}</h1>
    <h1>计算属性:{{reverseMsg}}</h1>
    <h1>计算属性:{{reverseMsg}}</h1>
</div>
</body>

</html>
<script src='https://cdn.jsdelivr.net/npm/vue@2.6.14/dist/vue.js'></script>
<script>
    //computed计算属性:用于解决模板中逻辑过重的问题;
    //可以把计算属性当成普通的data属性来使用
    //计算属性不允许直接修改
    //computed计算属性非常常用


    //计算属性的特性:
    //1.根据外界响应式依赖而发生改变,修改响应式依赖的值,那么计算属性自然就会发生变化

    //2.计算属性是有缓存的


    let vm = new Vue({
        el: "#app",
        data: {
            msg: "今夜我又来到你窗外,窗帘上你的影子是多么可爱",
            name: '文东恩'
        },
        computed: {
            //正常开发的写法,计算属性都是函数,函数的名字就是属性的名字
            reverseMsg() {
                console.log('函数被执行了')
                //每个计算属性都要有返回值,返回值就是属性值
                let res = (this.name + "-" + "卷发棒").split("").reverse().join("") + +new Date() + this.msg
                return res
            }
        }
    })
</script>